var $returnMoneyExamineTable = $("#returnMoneyExamineTable");
var $approvalRecordTable = $("#approvalRecord");
var examineId;
var contractId;

$(function(){
    returnMoneyExamineTableInit();
    cooperateTable();
})
//回款审核
function contractTypeFormat(value,row,index){
    if(value === '1'){
        return '非会员合同'
    }else if(value === '2'){
        return '会员新单合同'
    }else if(value === '3'){
        return '活动合同'
    }else if(value === '4'){
        return '会员续费合同'
    }else if(value === '5'){
        return '兑换合同'
    } else if(value === '6'){
        return '单品合同'
    } else if(value === '7'){
        return '会员单次'
    }
}
function returnMoneyExamineStateFormat(value,row,index){
    if(value === 0){
        return '正在审核'
    }else if(value === 1){
        return '审核通过'
    }else if(value === 2){
        return '审核未通过'
    }else if(value === 3){
        return '补充材料'
    }
}
function returnMoneyExamineTableInit(){
    //先销毁表格
    $returnMoneyExamineTable.bootstrapTable('destroy');
    $returnMoneyExamineTable.bootstrapTable({
        classes: 'table table-hover table-bordered table-striped',
        url: '/returnMoneyExamine/queryList',//请求地址
        method: 'post',//请求方式
        contentType: "application/x-www-form-urlencoded",//请求内容类型
        dataType: "json",//数据类型
        striped: true,//是否显示行间隔色
        sortable: true,//是否启用排序
        sortOrder: "desc",//排序方式
        sortName: 'createTm',//排序字段
        cache: false,//是否使用缓存
        showColumns: false,//显示隐藏列
        showRefresh: false,//显示刷新按钮
        showToggle: false,//切换显示样式
        showFooter: false,//显示Table脚部
        pagination: true,//是否显示分页
        showPaginationSwitch: false,//是否显示分页按钮
        clickToSelect: false,//是否启用点击选中行
        singleSelect: false,
        minimumCountColumns: 2,//最少要显示的列数
        undefinedText: '-',//cell没有值时显示
        sidePagination: "server",//分页方式：client客户端分页，server服务端分页
        uniqueId: 'productOrderId',
        idField: 'productOrderId',
        pageSize: 10,//每页的记录行数
        pageNumber: 1,//初始化加载第1页，默认第1页
        pageList: [5,10,15,20],//可供选择的每页的行数
        queryParams:function(params){
            params.pageSize = params.limit;
            params.pageIndex = (params.offset / params.limit) + 1;
            params.keyword = $('#orderNumberReturnMoney').val();
            params.csExamineState = $("#csExamineState").val();
            return params;
        },//查询参数
        columns: [
            {title: '主键', field: 'productOrderId', visible: false},
            {title: '订单编号', field: 'orderNumber', align: 'left', valign: 'middle'},
            {title: '订单客户名称', field: 'orderCustomerName', align: 'left', valign: 'middle'},
            {title: '流水客户名称', field: 'flowCustomerName', align: 'left', valign: 'middle'},
            {title: '合同类型', field: 'contractType', align: 'left', valign: 'middle',formatter:contractTypeFormat},
            {title: '流水编号', field: 'transactionNo', align: 'left', valign: 'middle'},
            {title: '所属公司', field: 'orderCompanyName', align: 'left', valign: 'middle'},
            {title: '所有人', field: 'orderCreatePeopleName', align: 'left', valign: 'middle'},
            {title: '客服部审核状态', field: 'csExamineState', align: 'left', valign: 'middle',formatter:returnMoneyExamineStateFormat},
            {title: '财务部审核状态', field: 'financeExamineState', align: 'left', valign: 'middle',formatter:returnMoneyExamineStateFormat},
            {title: '操作',field: 'operate',align: 'left',events:operateEvents,formatter: returnMoneyOperate}
        ],
        responseHandler: function (result) {
            if (result.code == "000000") {
                var obj = {
                    "rows": result.data,
                    "total": result.totalRecords//总条数
                };
            } else {
                var obj = {
                    "total": 0,
                    "rows": [],
                }
            }
            return obj;
        },
        onLoadSuccess: function () {
            //加载成功时执行
            $("[data-toggle='tooltip']").tooltip();//加这个是为了让操作列的提示图标显示在上方
        },
        onLoadError: function (status) {
            if (status == 403) {
                alert("权限不足！禁止访问！");
            } else {
                //加载失败时执行
                alert("加载失败！");
            }
        },
        formatLoadingMessage: function () {
            return "请稍等，加载中...";
        },
        formatNoMatches: function () {
            return '无符合条件的记录';
        },
    });
}
function returnMoneyOperate(value,row,index) {
    var html = "";
    if(row.examineState == 0 && row.csExamineState == 0){
        html += '<button class="btn btn-default approval"  type="button">审核</button>';
    }else{
        html += '<button class="btn btn-default detail"  type="button"><i class="mdi mdi-eye"></i>查看</button>';
    }
    return html;

}
let idsArr=['flowCustomerName','flowCreatePeopleName','arriveMoney','orderCustomerName',
    'orderCreatePeopleName','csExamineRemark','financeExamineRemark','contractNumber',
    'createPeopleName','orderCreateTm','orderCompanyName','orderCustomerName2','orderActualTotalAmount',
    'returnMoneyAmount','residueMoneyAmount'
];
function openApprovalModal(row,type){
    getDetail(row.examineId,idsArr,type);
    examineId=row.examineId;
    if(type=='approval'){
        $(".approvalDemo").show();
        $("#btnsContainer").show()
    }else if(type=='detail'){
        $(".approvalDemo").hide();
        $("#btnsContainer").hide()
    }
    approvalRecordTableInit(row.examineId);
    $("#approvalModal").modal("show");
    approvalFormValidator()
}
$("#approvalModal").on('hide.bs.modal',function(){
    var reasonFormValidator = $(`#approvalForm`).data('bootstrapValidator');
    if (reasonFormValidator) {
        $(`#approvalForm`).data('bootstrapValidator').destroy();
        $(`#approvalForm`).data('bootstrapValidator', null);
    }
})
function getDetail(examineId,idsArr,type){
    $.ajax({
        url:'/returnMoneyExamine/queryDetails',
        method:'POST',
        async:false,
        data:{
            examineId:examineId
        },
        success:(function(result){
            if(result.code=='000000'){
                var data=result.data;
                for(var i=0;i<idsArr.length;i++){
                    var id=idsArr[i];
                    if(id=='csExamineRemark'||id=='financeExamineRemark'){
                        $(`#${id}`).val(data[id])
                    }else{
                        $(`#${id}`).text(data[id])
                    }
                }
                $(`#serial`).text(data.transactionNo);
                $("#orderNumberApprovl").text(data.orderNumber);
                $("input[name='csExamineState']").prop({'checked':false,'disabled':false});
                $("input[name='csExamineState'][value='"+data.csExamineState+"']").prop('checked','checked');
                annexFilePath=data.csProveFile;
                examineFilePath=data.financeProveFile;
                //订单详情
                let contractType=contractTypeFormat(data.contractType,'','');
                $("#contractType").text(contractType);//合同类型
                let contractRange=data.contractStartDate&&data.contractEndDate?(data.contractStartDate+'至'+data.contractEndDate):''
                $("#contractRange").text(contractRange)//合同起止时间
                let orderStatusText=orderStatusFormat(data.orderStatus);
                $("#orderStatus").text(orderStatusText);//订单状态
                viewCooperate(data.contractId);//合作开发人员
            }else{
                $.alert({
                    'title':'提示',
                    'content':result.message
                })

            }

        }),
        error:(function(result){
            $.alert({
                'title':'提示',
                'content':result.message
            })
        })
    })
}
function orderStatusFormat(status){
    let statusText='';
    switch(status){
        case '1':
            statusText='等待回款';
            break;
        case '2':
            statusText='已完成';
            break;
        case '3':
            statusText='作废';
            break;
        case '4':
            statusText='部分回款';
            break;
        case '5':
            statusText='预回款';
            break;
    }
    return statusText
}

window.operateEvents = {
    //查看点击事件
    'click .approval': function (e, value, row, index) {
          openApprovalModal(row,'approval');
          $("#flowCustomerName").text(row.flowCustomerName);
    },
    'click .detail': function (e, value, row, index) {
        openApprovalModal(row,'detail')
    }
}
//审批记录
function approvalRecordTableInit(examineId){
    //先销毁表格
    $approvalRecordTable.bootstrapTable('destroy');
    $approvalRecordTable.bootstrapTable({
        classes: 'table table-hover table-bordered table-striped',
        url: '/returnMoneyExamine/queryExamineList',//请求地址
        method: 'post',//请求方式
        contentType: "application/x-www-form-urlencoded",//请求内容类型
        dataType: "json",//数据类型
        striped: true,//是否显示行间隔色
        sortable: true,//是否启用排序
        sortOrder: "desc",//排序方式
        sortName: 'examineTime',//排序字段
        cache: false,//是否使用缓存
        showColumns: false,//显示隐藏列
        showRefresh: false,//显示刷新按钮
        showToggle: false,//切换显示样式
        showFooter: false,//显示Table脚部
        pagination: true,//是否显示分页
        showPaginationSwitch: false,//是否显示分页按钮
        clickToSelect: false,//是否启用点击选中行
        singleSelect: false,
        minimumCountColumns: 2,//最少要显示的列数
        undefinedText: '-',//cell没有值时显示
        sidePagination: "server",//分页方式：client客户端分页，server服务端分页
        uniqueId: 'recordId',
        idField: 'recordId',
        pageSize: 10,//每页的记录行数
        pageNumber: 1,//初始化加载第1页，默认第1页
        pageList: [5,10,15,20],//可供选择的每页的行数
        queryParams:function(params){
            params.pageSize = params.limit;
            params.pageIndex = (params.offset / params.limit) + 1;
            params.examineId = examineId;
            return params;
        },//查询参数
        columns: [
            {title: '主键', field: 'recordId', visible: false},
            {title: '审核类型', field: 'examinePeopleType', align: 'left', valign: 'middle',formatter: examinePeopleTypeFormat},
            {title: '审核人', field: 'examinePeopleName', align: 'left', valign: 'middle'},
            {title: '审核内容', field: 'examineRemark', align: 'left', valign: 'middle',formatter : function(value, row, index, field){
                    var values=value?value:'-';
                    return `<span style='display: inline-block;overflow: hidden;text-overflow: ellipsis;max-width:inherit;white-space: nowrap;' data-toggle='tooltip' data-placement="top" data-original-title="${values}">${values}</span>`;
                },
                cellStyle : function(value, row, index, field){
                    return {
                        css: {
                            "white-space": "nowrap",
                            "text-overflow": "ellipsis",
                            "overflow": "hidden",
                            "max-width":"200px"
                        }
                    };
                }},
            {title: '审核结果', field: 'examineState', align: 'left', valign: 'middle',formatter:examineStateFormat },
            {title: '审核时间', field: 'examineTime', align: 'left', valign: 'middle'}
        ],
        responseHandler: function (result) {
            if (result.code == "000000") {
                var obj = {
                    "rows": result.data,
                    "total": result.totalRecords//总条数
                };
            } else {
                var obj = {
                    "total": 0,
                    "rows": [],
                }
            }
            return obj;
        },
        onLoadSuccess: function () {
            //加载成功时执行
            $("[data-toggle='tooltip']").tooltip({
                "container": 'body',
            });//加这个是为了让操作列的提示图标显示在上方
        },
        onLoadError: function (status) {
            if (status == 403) {
                alert("权限不足！禁止访问！");
            } else {
                //加载失败时执行
                alert("加载失败！");
            }
        },
        formatLoadingMessage: function () {
            return "请稍等，加载中...";
        },
        formatNoMatches: function () {
            return '无符合条件的记录';
        },
    });
}
//审核记录 自定义
function examinePeopleTypeFormat(value,row,index){
    if(value=='1'){
        return '客服';
    }else if(value=='2'){
        return '财务';
    }
}
function examineStateFormat(value,row,index){
    if(value=='1'){
        return '审核通过';
    }else if(value=='2'){
        return '审核未通过';
    }else if(value=='3'){
        return '补充材料';
    }
}

/**
 * 功能：查看合作开发人员信息
 * */
function viewCooperate(contractId) {
    $.ajax({
        url: '/customerContract/selectContractCoDeveloperById',
        type: 'GET',
        dataType: 'json',
        data: {
            contractId: contractId
        },
        success: function (data) {
            if (data.code == '000000') {
                $('#cooperateTable').bootstrapTable('hideLoading').bootstrapTable('load', data.data);
            } else {
                $.alert('获取开发人员信息出错，代码：' + data.code);
            }
        },
        error: function (err) {
            $.alert('获取开发人员信息失败！');
            console.log(err);
        }
    })
}
// 初始化合作开发人员信息列表
function cooperateTable() {
    $('#cooperateTable').bootstrapTable({
        classes: 'table table-bordered table-hover table-striped',
        striped: true,                      // 是否显示行间隔色
        undefinedText: '-',                 // cell没有值时显示
        pagination: true,                   // 是否显示分页
        pageSize: '5',                      // 每页的记录行数
        pageNumber: 1,                      // 初始化加载第1页，默认第1页
        pageList: ['5', '10'],              // 可供选择的每页的行数
        columns: [
            {title: '合作开发人员', field: 'userName', align: 'left', valign: 'middle'},
            {title: '所属分公司', field: 'companyName', align: 'left', valign: 'middle'},
            {title: '分配金额', field: 'allocationMount', align: 'left', valign: 'middle'},
        ]
    });
}

//审核备注 审核结果不能为空
function approvalFormValidator(){
    $('#approvalForm').bootstrapValidator({
        fields: {
            csExamineRemark: {
                validators: {
                    notEmpty: {
                        message: '审核备注不能为空'
                    },
                    stringLength: {
                        min: 0,
                        max: 100,
                        message: '备注内容不能超过100个字符'
                    }
                }
            },
            csExamineState:{
                validators: {
                    notEmpty: {
                        message: '审核结果不能为空'
                    }
                }
            }
        }
    })
}

//校验是否通过
function bootstrapValidatorFlag(formId){
    var bootstrapValidator = $(`#${formId}`).data('bootstrapValidator');
    bootstrapValidator.validate();
    return bootstrapValidator.isValid()
}
//回款审核
function submitApproval(){
    var flag=bootstrapValidatorFlag('approvalForm');
    if(!flag){
        return;
    }
    var params={
        examineId:examineId,
        csExamineState:$("input[name='csExamineState']:checked").val(),
        csExamineRemark:$.trim($("#csExamineRemark").val())
    };
    $.ajax({
        'url':'/returnMoneyExamine/examine',
        'method':'POST',
        'data':params,
        success:(function(result){
            if(result.code=='000000'){
                $.alert({
                    'title':'提示',
                    'content':'审核成功'
                })
                returnMoneyExamineTableInit();
                $("#approvalModal").modal('hide');
            }else{
                $.alert({
                    'title':'提示',
                    'content':result.message
                })
            }


        }),
        error:(function(result){
            $.alert({
                'title':'提示',
                'content':result.message
            })
        })

    })
}
$(document).on("show.bs.modal",'#cooperateModal',function(){
    $('body').removeClass("filter-blur");
    $(this).find('.modal-dialog').draggable();
})
